package com.yilian.xlmusic.android.utils.music;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DiffUtil;

import com.yilian.xlmusic.android.view.bean.MusicPlayerBean;

public class DiffDemoCallback extends DiffUtil.ItemCallback<MusicPlayerBean.DataBean>{
    /**
     * Determine if it is the same item
     * <p>
     * 判断是否是同一个item
     *
     * @param oldItem New data
     * @param newItem old Data
     * @return
     */
    @Override
    public boolean areItemsTheSame(@NonNull MusicPlayerBean.DataBean oldItem, @NonNull MusicPlayerBean.DataBean newItem) {

        return oldItem.getId() == newItem.getId();
    }
    /**
     * When it is the same item, judge whether the content has changed.
     * <p>
     * 当是同一个item时，再判断内容是否发生改变
     *
     * @param oldItem New data
     * @param newItem old Data
     * @return
     */
    @Override
    public boolean areContentsTheSame(@NonNull MusicPlayerBean.DataBean oldItem, @NonNull MusicPlayerBean.DataBean newItem) {
        return  oldItem.getNet_play_url().equals(newItem.getNet_play_url())
                &&oldItem.getDuration().equals(newItem.getDuration())
                &&oldItem.getCover().equals(newItem.getCover())
                &&oldItem.getArtist().equals(newItem.getArtist())
                &&oldItem.getName().equals(newItem.getName())
                &&oldItem.isIs_play()==newItem.isIs_play()
                &&oldItem.isCollected() == newItem.isCollected();
    }
    /**
     * 可选实现
     * 如果需要精确修改某一个view中的内容，请实现此方法。
     * 如果不实现此方法，或者返回null，将会直接刷新整个item。
     *
     * @param oldItem Old data
     * @param newItem New data
     * @return Payload info. if return null, the entire item will be refreshed.
     */
    @Override
    public Object getChangePayload(@NonNull MusicPlayerBean.DataBean oldItem, @NonNull MusicPlayerBean.DataBean newItem) {

        return null;
    }

}
